This invention relates to methods of providing a service from a server on a communication network to any one of a plurality of terminals that connect to the network.
To obtain the service at a particular terminal, an operator of the terminal generates a request for the service. One part of this request identifies the service that is requested, and another part of the request names the server which provides the service.
In the prior art, such a request for service has been generated by using a keyboard on the terminal to identify the requested service and the name of the server which provides the service. Also in the prior art, such a request has been generated by using a mouse to position a cursor on an icon that corresponds to the requested service from the named server, and clicking on that icon.
One example of the above type of communication network is the Internet. There, millions of operators generate requests for services from thousands of different servers, and each server has a unique name. An example of such a request on the Internet is http://www.microsoft.com.
Before the server which is named in a request can provide the requested service, that name must be converted to a network address which is assigned to the server. For example, the network address that corresponds to the server named www.microsoft.com is 207.68.156.49. This address for the server is not generated by the operator of a terminal because it is not "user friendly". It is much easier for the terminal's operator to simply remember the server's name.
In the prior art, various mechanisms are available which automatically convert the name of a server to a single network address. One such mechanism is the Internet Domain Name Service (DNS), and another is the Windows Internet Name Service (WINS).
After the server's name is converted to a single network address, the requested service is often provided by a single computer on the network which is assigned that network address. However, one problem with providing the service from a single computer is that when the computer breaks, all of the terminals on a network are unable to obtain the service. Also, another problem with providing a service from a single computer is that the computer becomes overloaded when a large number of terminals on the network request the service at the same time. Consequently, the service is degraded or rejected.
To address these problems in the prior art, servers have been disclosed which are comprised of a group of several computers that are intercoupled in a cluster. See for example, FIG. 2 of U.S. Pat. No. 5,371,852. There, the cluster comprises a plurality of computers 105 thru 109, and computer 109 acts as a gateway which interfaces the communication network to the computers 105 thru 108.
With the above cluster server, any one of the computers 105 thru 108 can fail and service can still be obtained from the remaining computers that operate. However, a drawback of the cluster server is that if the gateway computer 109 fails, then none of the other computers 105 thru 108 are able to provide the requested service.
Also, another drawback of the cluster server is that it requires the additional gateway computer 109 and additional software; and that can significantly increase the initial cost of the cluster and the cost of its maintenance. Further, this additional cost is incurred each time a new cluster server is added to the network in order to provide a new service.
Accordingly, an object of the present invention is to provide a novel method of providing a service on a communication network in which the above prior art problems are overcome.